return {
  {
    "yetone/avante.nvim",
    event = "VeryLazy",
    lazy = false,
    version = false, -- Set this to "*" to always pull the latest release version, or set it to false to update to the latest code changes.

    ---@module 'avante'
    ---@type avante.Config
    opts = {
      provider = "sfQwenCode3",
      auto_suggestions_provider = "sfQwenCode",
      providers = {
        sfQwen = {
          __inherited_from = "openai",
          api_key_name = "SF_API_KEY",
          endpoint = "https://api.siliconflow.cn/v1",
          model = "Qwen/Qwen2.5-32B-Instruct",
        },
        sfQwenCode = {
          __inherited_from = "openai",
          api_key_name = "SF_API_KEY",
          endpoint = "https://api.siliconflow.cn/v1",
          model = "Qwen/Qwen2.5-Coder-7B-Instruct",
        },
        sfQwenCode3 = {
          __inherited_from = "openai",
          api_key_name = "SF_API_KEY",
          endpoint = "https://api.siliconflow.cn/v1",
          model = "Qwen/Qwen3-Coder-30B-A3B-Instruct",
        },
        deepseek = {
          __inherited_from = "openai",
          api_key_name = "DEEPSEEK_API_KEY",
          endpoint = "https://api.deepseek.com",
          model = "deepseek-chat",
        },
      },
      behaviour = {
        auto_suggestions = false,
      },

      -- selector = {
      --   --- @alias avante.SelectorProvider "native" | "fzf_lua" | "mini_pick" | "snacks" | "telescope" | fun(selector: avante.ui.Selector): nil
      --   --- @type avante.SelectorProvider
      --   provider = "fzf_lua"
      -- },
      --
      -- input = {
      --   provider = "snacks",
      --   provider_opts = {
      --     -- Additional snacks.input options
      --     title = "Avante Input",
      --     icon = " ",
      --   },
      -- },
    },
    build = vim.fn.has("win32") ~= 0 and "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false"
      or "make",

    dependencies = {
      "nvim-lua/plenary.nvim",
      "MunifTanjim/nui.nvim",
      --- The below dependencies are optional,
      "ibhagwan/fzf-lua", -- for file_selector provider fzf
      "folke/snacks.nvim", -- for input provider snacks
      "echasnovski/mini.icons",
      {
        -- support for image pasting
        "HakonHarnes/img-clip.nvim",
        event = "VeryLazy",
        opts = {
          -- recommended settings
          default = {
            embed_image_as_base64 = false,
            prompt_for_file_name = false,
            drag_and_drop = {
              insert_mode = true,
            },
            -- required for Windows users
            use_absolute_path = true,
          },
        },
      },
      {
        -- Make sure to set this up properly if you have lazy=true
        "MeanderingProgrammer/render-markdown.nvim",
        opts = {
          file_types = { "markdown", "Avante" },
        },
        ft = { "markdown", "Avante" },
      },
    },
  },
  {
    "saghen/blink.cmp",
    dependencies = {
      "Kaiser-Yang/blink-cmp-avante",
    },
    opts = {
      sources = {
        default = { "avante"},
        providers = {
          avante = {
            module = "blink-cmp-avante",
            name = "Avante",
            opts = {
              -- options for blink-cmp-avante
            },
          },
        },
      },
    },
  },
}
